This invention relates to bar code readers.
Typically, bar code symbols are formed from bars or elements that are typically rectangular in shape with a variety of possible widths. The specific arrangement of these elements defines a character according to a set of rules and definitions specified by the code or "symbology" used. The relative size of the bars and spaces is determined by the type of coding used, as is the actual size of the bars and spaces. The number of characters per inch represented by the bar code symbol is referred to as the density of the symbol. To encode a desired sequence of characters, groups of elements are concatenated together to form the complete bar code symbol, with each character of the message being represented by its own corresponding group of elements. In some symbologies, unique "start" and "stop" characters are used to indicate where the bar code begins and ends. A number of different bar code symbologies exist. These symbologies include, e.g., UPC/EAN, Code 39, Code 49, Code 128, Codabar, and Interleaved 2 of 5.
In order to increase the amount of data that can be represented, or stored, on a given amount of surface area, several new bar code symbologies have recently been developed. One of these code standards, PDF 417 (developed by the present assignee), uses a "two-dimensional" scheme in which rows of characters are stacked vertically. That is, there are several rows of bar and space patterns, instead of only one row.
Thus, bar codes include not only the traditional rectangularly-shaped bars and spaces, but any form of symbol in which different portions of the symbol have different light reflecting characteristics.
Bar codes are typically scanned to transform the graphic symbol elements into electrical signals, which are then decoded into characters. A scanning system uses a light source, typically a laser, which is directed to the symbol or bar code by lenses or other optical components. The reader functions by repetitively scanning the light beam in a path or series of paths across the symbol. Scanning systems also include a sensor or photodetector which detects light reflected from the symbol. A portion of the reflected light is detected and converted into an electrical signal, and electronic circuitry or software decodes the electrical signal into a digital representation. The symbol is decoded according to the coding technique used.
For example, in a Universal Product Code (UPC) bar code typical on many supermarket items, the first five digits indicate the manufacturer of the item, and the second five digits indicate the item number, which may be used by a computer to look-up the current price of the item, and to deduct that item from the supermarket's inventory.
A bar code offers several advantages over other data representations. A bar code allows data to be entered into a computer more rapidly. Bar code systems are nearly error-free. Bar code formats are designed with various forms of error-checking built into the code.
In recent years, there have been increasing demands for storing more information in a bar code label. In particular, there is a desire to create a "portable data file", as opposed to the "licensed plate" nature of conventional bar code symbols.
For example, a typical UPC bar code only contains the manufacturer's code and the item number. The price look-up must be accessed in a database keyed to the item number in the bar code. A two-dimensional bar code, on the other hand, could be used to store all of the relevant information, such as price, the name of the product, manufacturer, weight, inventory data, and expiration date. This would constitute a "portable data file" because the information could be retrieved without having to access a database. While a price look-up database file is conveniently available in a retail environment, this may not be the case in other applications.
Although two-dimensional bar code schemes do not have vertical redundancy, they incorporate other forms of redundancy as well as other advantages, while increasing the density of information storage. For example, Code PDF 417 allows stitching of partial scans, error detection, and error correction.
Typical bar code readers can be placed in one of two general categories. Readers in the first category use a mechanical movement to sweep a laser beam across the bar code. These readers typically include a focusing lens which focuses the beam to a narrow "spot" on the bar code, a steering mirror which, by mechanical rotation, sweeps the "spot" across the bar code, and a light sensor which detects the time variation of the intensity of the reflected light and converts this time variation into bars and spaces. Readers in the second category have a detector with a wide field of view. Typically, an optical system images the bar code onto a linear CCD array or other fixed array of sensors. A bright light source, such as a linear array of light emitting diodes (LEDs) is placed near to the bar code so as to illuminate the entire bar code. The spatial variation of the reflected light is detected by the self-scanning action of the CCD array and converted into electrical signals representing bars and spaces.
An important advantage of readers in the second category is the greater field of view achieved by the detectors. However, because such a design requires that the entire bar code be illuminated at one time, and because known bar code readers use diffuse light sources such as LEDs to illuminate the bar code, readers of the second category typically exhibit high power consumption and poor illumination.